Multithreading Languages
نویسندگان
چکیده
It is di cult to map the execution model of multithreading languages (languages which support ne-grain dynamic thread creation) onto the single stack execution model of C. Consequently, previous work on e cient multithreading uses elaborate frame formats and allocation strategy, with compilers customized for them. This paper presents an alternative cost-e ective implementation strategy for multithreading languages which can maximally exploit current sequential C compilers. We identify a set of primitives whereby efcient dynamic thread creation and switch can be achieved and clarify implementation issues and solutions which work under the stack frame layout and calling conventions of current C compilers. The primitives are implemented as a C library and named StackThreads. In StackThreads, a thread creation is done just by a C procedure call, maximizing thread creation performance. When a procedure suspends an execution, the context of the procedure, which is roughly a stack frame of the procedure, is saved into heap and resumed later. With StackThreads, the compiler writer can straightforwardly translate sequential constructs of the source language into corresponding C statements or expressions, while using StackThreads primitives as a blackbox mechanism which switches execution between C procedures.
منابع مشابه
Fine - grain Multithreading with Minimal Compiler
It is di cult to map the execution model of multithreading languages (languages which support ne-grain dynamic thread creation) onto the single stack execution model of C. Consequently, previous work on e cient multithreading uses elaborate frame formats and allocation strategy, with compilers customized for them. This paper presents an alternative cost-e ective implementation strategy for mult...
متن کاملSemantics of Multithreaded Java
Java has integrated multithreading to a far greater extent than most programming languages. It is also one of the only languages that specifies and requires safety guarantees for improperly synchronized programs. It turns out that understanding these issues is far more subtle and difficult than was previously thought. The existing specification makes guarantees that prohibit standard and propos...
متن کاملPerformance Evaluation of Programming Paradigms and Languages Using Multithreading on Digital Image Processing
We present a comparative performance evaluation of different programming paradigms and languages using multithreaded programming. We compare the procedural and object-oriented (OO) paradigms, as well as the C++ and Java languages, regarding both performance and programmability. The comparison is made upon sequential and parallel image convolution implementations based on those paradigms and lan...
متن کاملA Compilation Framework for Languages with Dynamic Thread Creation
The e ciency of multithreading is quite essential to the overall performance of concurrent object-oriented languages. It is very ine cient to implement such languages by using thread libraries. In this paper, we propose a framework that e ciently compiles languages which supports dynamic thread creation. In the framework, we designed and implemented a programming language Schematic, which is a ...
متن کاملCompiler-Controlled Multithreading for Lenient Parallel Languages1
Abstract: Tolerance to communication latency and inexpensive synchronization are critical for general-purpose computing on large multiprocessors. Fast dynamic scheduling is required for powerful non-strict parallel languages. However, machines that support rapid switching between multiple execution threads remain a design challenge. This paper explores how multithreaded execution can be address...
متن کامل